using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySQL_SysFrameMVC.Message;
using System.Reflection;
using System.Data;
using MySql.Data.MySqlClient;
using SysFrame.Message;
using SysFrame.BP;
using TaskAPP.Message;

namespace TaskApp.BP
{
    /// <summary>
    /// taskapp_main方法
    /// </summary>
    public class MySQLtaskapp_main : Itaskapp_main
    {
        /// <summary>
        /// 获取查询Task主表的SQL 主要为其他后代表关联用
        /// </summary>
        /// <returns></returns>
        public static List<string> TaskMainSql()
        {
            List<string> sql = new List<string>();
            StringBuilder sbcol = new StringBuilder();
            sbcol.Append(",main.* ");
            sbcol.Append(",mains4.SYSTEM_4_40 as strTASKAPP_MAIN_60 ");
            sql.Add(sbcol.ToString());//获取要查询的列
            StringBuilder table = new StringBuilder();
            table.Append(" LEFT JOIN SYSTEM_4 mains4 on mains4.SYSTEM_4_20=main.TASKAPP_MAIN_60 ");
            sql.Add(table.ToString());//获取关联表
            return sql;
        }

        /// <summary>
        /// 得到taskapp_main实体
        /// </summary>
        /// <param name="msq">条件</param>
        /// <returns></returns>
        public List<Mstaskapp_main> Gettaskapp_mainMsByQuery(MsQuery msq)
        {
            List<Mstaskapp_main> listms = new List<Mstaskapp_main>();
            StringBuilder sb = new StringBuilder();
            List<string> lstCmdText = new List<string>();
            sb.Append("select taskapp_main.*");
            sb.Append(",SYSTEM_4_40 as strTASKAPP_MAIN_60 ");
            sb.Append(" from taskapp_main ");
            sb.Append(" LEFT JOIN SYSTEM_4 on SYSTEM_4_20=TASKAPP_MAIN_60 ");
            sb.Append(" where 1=1 ").Append(msq.strquery);
            if (msq.strorder != null && msq.strorder != "")
            {
                sb.Append(" order by ").Append(msq.strorder);
            }
            lstCmdText.Add(sb.ToString());
            sb.Remove(0, sb.ToString().Length);
            try
            {
                DataSet ds = DbHelperMySQL.Query(lstCmdText[0].ToString());
                if (ds != null && ds.Tables.Count != 0 && ds.Tables[0].Rows.Count != 0)
                {
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        Mstaskapp_main ms = new Mstaskapp_main();
                        int? TASKAPP_MAIN_AUTOID = null;
                        ms.TASKAPP_MAIN_AUTOID = (int)dr["TASKAPP_MAIN_AUTOID"];// AutoID
                        char? TASKAPP_MAIN_ISDEL = null;
                        ms.TASKAPP_MAIN_ISDEL = dr["TASKAPP_MAIN_ISDEL"].ToString();// 是否删除

                        ms.TASKAPP_MAIN_MAKETIME = dr["TASKAPP_MAIN_MAKETIME"].ToString();// 新增时间

                        ms.TASKAPP_MAIN_MAKEUSER = dr["TASKAPP_MAIN_MAKEUSER"].ToString();// 新增人

                        ms.TASKAPP_MAIN_PARENTID = dr["TASKAPP_MAIN_PARENTID"].ToString();// 上级ID

                        ms.TASKAPP_MAIN_MAKEFROM = dr["TASKAPP_MAIN_MAKEFROM"].ToString();// 来源

                        ms.TASKAPP_MAIN_10 = dr["TASKAPP_MAIN_10"].ToString();// 单据编号

                        ms.TASKAPP_MAIN_20 = dr["TASKAPP_MAIN_20"].ToString();// 单据类型

                        ms.TASKAPP_MAIN_30 = dr["TASKAPP_MAIN_30"].ToString();// 流程实例ID

                        ms.TASKAPP_MAIN_40 = dr["TASKAPP_MAIN_40"].ToString();// 当前环节ID

                        ms.TASKAPP_MAIN_50 = dr["TASKAPP_MAIN_50"].ToString();// 下一个环节ID

                        ms.TASKAPP_MAIN_60 = dr["TASKAPP_MAIN_60"].ToString();// 单据状态
                        ms.strTASKAPP_MAIN_60 = dr["strTASKAPP_MAIN_60"].ToString();// 单据状态

                        ms.TASKAPP_MAIN_70 = dr["TASKAPP_MAIN_70"].ToString();// 最后修改人

                        ms.TASKAPP_MAIN_80 = dr["TASKAPP_MAIN_80"].ToString();// 最后修日期

                        ms.TASKAPP_MAIN_90 = dr["TASKAPP_MAIN_90"].ToString();// 备用1

                        ms.TASKAPP_MAIN_100 = dr["TASKAPP_MAIN_100"].ToString();// 备用2

                        ms.TASKAPP_MAIN_110 = dr["TASKAPP_MAIN_110"].ToString();// 备用3

                        ms.TASKAPP_MAIN_120 = dr["TASKAPP_MAIN_120"].ToString();// 备用4

                        ms.TASKAPP_MAIN_130 = dr["TASKAPP_MAIN_130"].ToString();// 备用5

                        ms.TASKAPP_MAIN_140 = dr["TASKAPP_MAIN_140"].ToString();// 备用6

                        ms.TASKAPP_MAIN_150 = dr["TASKAPP_MAIN_150"].ToString();// 备用7

                        ms.TASKAPP_MAIN_160 = dr["TASKAPP_MAIN_160"].ToString();// 备用8

                        ms.TASKAPP_MAIN_170 = dr["TASKAPP_MAIN_170"].ToString();// 备用9

                        ms.TASKAPP_MAIN_180 = dr["TASKAPP_MAIN_180"].ToString();// 备用10

                        ms.TASKAPP_MAIN_190 = dr["TASKAPP_MAIN_190"].ToString();// 备用11

                        ms.TASKAPP_MAIN_200 = dr["TASKAPP_MAIN_200"].ToString();// 备用12
                        listms.Add(ms);
                    }
                }
            }
            catch (Exception ex) { }
            return listms;
        }

        /// <summary>
        ///  保存taskapp_main信息
        /// </summary>
        /// <param name="ms">实体信息 通过TASKAPP_MAIN_AUTOID进行判断有TASKAPP_MAIN_AUTOID就是update</param>
        /// <returns>消息</returns>
        public MsReturned Savetaskapp_main(Mstaskapp_main ms)
        {
            MsReturned msr = new MsReturned();
            if (ms.TASKAPP_MAIN_AUTOID != null && ms.TASKAPP_MAIN_AUTOID.ToString() != "" && ms.TASKAPP_MAIN_AUTOID.ToString() != "0")
            {
                msr = Uptaskapp_main(ms);
            }
            else
            {
                msr = Addtaskapp_main(ms);
            }
            return msr;
        }

        /// <summary>
        ///  新增taskapp_main信息
        /// </summary>
        /// <param name="ms">实体信息 通过TASKAPP_MAIN_AUTOID进行判断有TASKAPP_MAIN_AUTOID就是update</param>
        /// <returns>消息</returns>
        public MsReturned Addtaskapp_main(Mstaskapp_main ms)
        {
            List<string> lstResult = new List<string>();
            StringBuilder sb = new StringBuilder();
            List<string> lstCmdText = new List<string>();
            MsReturned msr = new MsReturned();
            int newRateId = DataBase.GetMaxId("taskapp_main", "TASKAPP_MAIN_AUTOID");
            sb.Append("insert into taskapp_main (");
            sb.Append("TASKAPP_MAIN_AUTOID,TASKAPP_MAIN_ISDEL,TASKAPP_MAIN_MAKETIME,TASKAPP_MAIN_MAKEUSER,TASKAPP_MAIN_PARENTID,");
            sb.Append("TASKAPP_MAIN_MAKEFROM,TASKAPP_MAIN_10,TASKAPP_MAIN_20,TASKAPP_MAIN_30,TASKAPP_MAIN_40,");
            sb.Append("TASKAPP_MAIN_50,TASKAPP_MAIN_60,TASKAPP_MAIN_70,TASKAPP_MAIN_80,TASKAPP_MAIN_90,");
            sb.Append("TASKAPP_MAIN_100,TASKAPP_MAIN_110,TASKAPP_MAIN_120,TASKAPP_MAIN_130,TASKAPP_MAIN_140,");
            sb.Append("TASKAPP_MAIN_150,TASKAPP_MAIN_160,TASKAPP_MAIN_170,TASKAPP_MAIN_180,TASKAPP_MAIN_190,");
            sb.Append("TASKAPP_MAIN_200");
            sb.Append(")");
            sb.Append("values ( ");
            sb.Append(newRateId.ToString()).Append(",");
            sb.Append("'");
            sb.Append(ms.TASKAPP_MAIN_ISDEL).Append("','");//TASKAPP_MAIN_ISDEL 是否删除
            sb.Append(ms.TASKAPP_MAIN_MAKETIME).Append("','");//TASKAPP_MAIN_MAKETIME 新增时间
            sb.Append(ms.TASKAPP_MAIN_MAKEUSER).Append("','");//TASKAPP_MAIN_MAKEUSER 新增人
            sb.Append(ms.TASKAPP_MAIN_PARENTID).Append("','");//TASKAPP_MAIN_PARENTID 上级ID
            sb.Append(ms.TASKAPP_MAIN_MAKEFROM).Append("','");//TASKAPP_MAIN_MAKEFROM 来源
            sb.Append(ms.TASKAPP_MAIN_10).Append("','");//TASKAPP_MAIN_10 单据编号
            sb.Append(ms.TASKAPP_MAIN_20).Append("','");//TASKAPP_MAIN_20 单据类型
            sb.Append(ms.TASKAPP_MAIN_30).Append("','");//TASKAPP_MAIN_30 流程实例ID
            sb.Append(ms.TASKAPP_MAIN_40).Append("','");//TASKAPP_MAIN_40 当前环节ID
            sb.Append(ms.TASKAPP_MAIN_50).Append("','");//TASKAPP_MAIN_50 下一个环节ID
            sb.Append(ms.TASKAPP_MAIN_60).Append("','");//TASKAPP_MAIN_60 单据状态
            sb.Append(ms.TASKAPP_MAIN_70).Append("','");//TASKAPP_MAIN_70 最后修改人
            sb.Append(ms.TASKAPP_MAIN_80).Append("','");//TASKAPP_MAIN_80 最后修日期
            sb.Append(ms.TASKAPP_MAIN_90).Append("','");//TASKAPP_MAIN_90 备用1
            sb.Append(ms.TASKAPP_MAIN_100).Append("','");//TASKAPP_MAIN_100 备用2
            sb.Append(ms.TASKAPP_MAIN_110).Append("','");//TASKAPP_MAIN_110 备用3
            sb.Append(ms.TASKAPP_MAIN_120).Append("','");//TASKAPP_MAIN_120 备用4
            sb.Append(ms.TASKAPP_MAIN_130).Append("','");//TASKAPP_MAIN_130 备用5
            sb.Append(ms.TASKAPP_MAIN_140).Append("','");//TASKAPP_MAIN_140 备用6
            sb.Append(ms.TASKAPP_MAIN_150).Append("','");//TASKAPP_MAIN_150 备用7
            sb.Append(ms.TASKAPP_MAIN_160).Append("','");//TASKAPP_MAIN_160 备用8
            sb.Append(ms.TASKAPP_MAIN_170).Append("','");//TASKAPP_MAIN_170 备用9
            sb.Append(ms.TASKAPP_MAIN_180).Append("','");//TASKAPP_MAIN_180 备用10
            sb.Append(ms.TASKAPP_MAIN_190).Append("','");//TASKAPP_MAIN_190 备用11
            sb.Append(ms.TASKAPP_MAIN_200).Append("')");//TASKAPP_MAIN_200 备用12
            MySqlParameter[] parameters = null;
            lstCmdText.Add(sb.ToString());
            sb.Remove(0, sb.ToString().Length);
            try
            {
                int iexe = DbHelperMySQL.ExecuteSql(lstCmdText[0].ToString(), parameters);
                if (iexe > 0)
                {
                    msr.strMsId = newRateId.ToString();
                    msr.strMS = "保存成功!";
                }
                else
                {
                    msr.strMsId = "-1";
                    msr.strMS = "操作失败:服务器忙,请稍后再试!";
                }
            }
            catch
            {
                msr.strMsId = "-1";
                msr.strMS = "操作失败:服务器忙,请稍后再试!";
            }
            lstCmdText = null;
            sb = null;
            return msr;
        }

        /// <summary>
        ///  更新taskapp_main信息
        /// </summary>
        /// <param name="ms">实体信息 通过TASKAPP_MAIN_AUTOID进行判断有TASKAPP_MAIN_AUTOID就是update</param>
        /// <returns>消息</returns>
        public MsReturned Uptaskapp_main(Mstaskapp_main ms)
        {
            List<string> lstResult = new List<string>();
            StringBuilder sb = new StringBuilder();
            List<string> lstCmdText = new List<string>();
            MsReturned msr = new MsReturned();
            sb.Append("update taskapp_main set ");
            sb.Append(" TASKAPP_MAIN_AUTOID='").Append(ms.TASKAPP_MAIN_AUTOID).Append("' ");// TASKAPP_MAIN_AUTOID AutoID
            if (ms.TASKAPP_MAIN_ISDEL != null && ms.TASKAPP_MAIN_ISDEL.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_ISDEL='").Append(ms.TASKAPP_MAIN_ISDEL).Append("' ");// TASKAPP_MAIN_ISDEL 是否删除
            }
            if (ms.TASKAPP_MAIN_MAKETIME != null && ms.TASKAPP_MAIN_MAKETIME.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_MAKETIME='").Append(ms.TASKAPP_MAIN_MAKETIME).Append("' ");// TASKAPP_MAIN_MAKETIME 新增时间
            }
            if (ms.TASKAPP_MAIN_MAKEUSER != null && ms.TASKAPP_MAIN_MAKEUSER.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_MAKEUSER='").Append(ms.TASKAPP_MAIN_MAKEUSER).Append("' ");// TASKAPP_MAIN_MAKEUSER 新增人
            }
            if (ms.TASKAPP_MAIN_PARENTID != null && ms.TASKAPP_MAIN_PARENTID.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_PARENTID='").Append(ms.TASKAPP_MAIN_PARENTID).Append("' ");// TASKAPP_MAIN_PARENTID 上级ID
            }
            if (ms.TASKAPP_MAIN_MAKEFROM != null && ms.TASKAPP_MAIN_MAKEFROM.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_MAKEFROM='").Append(ms.TASKAPP_MAIN_MAKEFROM).Append("' ");// TASKAPP_MAIN_MAKEFROM 来源
            }
            if (ms.TASKAPP_MAIN_10 != null && ms.TASKAPP_MAIN_10.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_10='").Append(ms.TASKAPP_MAIN_10).Append("' ");// TASKAPP_MAIN_10 单据编号
            }
            if (ms.TASKAPP_MAIN_20 != null && ms.TASKAPP_MAIN_20.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_20='").Append(ms.TASKAPP_MAIN_20).Append("' ");// TASKAPP_MAIN_20 单据类型
            }
            if (ms.TASKAPP_MAIN_30 != null && ms.TASKAPP_MAIN_30.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_30='").Append(ms.TASKAPP_MAIN_30).Append("' ");// TASKAPP_MAIN_30 流程实例ID
            }
            if (ms.TASKAPP_MAIN_40 != null && ms.TASKAPP_MAIN_40.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_40='").Append(ms.TASKAPP_MAIN_40).Append("' ");// TASKAPP_MAIN_40 当前环节ID
            }
            if (ms.TASKAPP_MAIN_50 != null && ms.TASKAPP_MAIN_50.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_50='").Append(ms.TASKAPP_MAIN_50).Append("' ");// TASKAPP_MAIN_50 下一个环节ID
            }
            if (ms.TASKAPP_MAIN_60 != null && ms.TASKAPP_MAIN_60.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_60='").Append(ms.TASKAPP_MAIN_60).Append("' ");// TASKAPP_MAIN_60 单据状态
            }
            if (ms.TASKAPP_MAIN_70 != null && ms.TASKAPP_MAIN_70.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_70='").Append(ms.TASKAPP_MAIN_70).Append("' ");// TASKAPP_MAIN_70 最后修改人
            }
            if (ms.TASKAPP_MAIN_80 != null && ms.TASKAPP_MAIN_80.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_80='").Append(ms.TASKAPP_MAIN_80).Append("' ");// TASKAPP_MAIN_80 最后修日期
            }
            if (ms.TASKAPP_MAIN_90 != null && ms.TASKAPP_MAIN_90.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_90='").Append(ms.TASKAPP_MAIN_90).Append("' ");// TASKAPP_MAIN_90 备用1
            }
            if (ms.TASKAPP_MAIN_100 != null && ms.TASKAPP_MAIN_100.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_100='").Append(ms.TASKAPP_MAIN_100).Append("' ");// TASKAPP_MAIN_100 备用2
            }
            if (ms.TASKAPP_MAIN_110 != null && ms.TASKAPP_MAIN_110.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_110='").Append(ms.TASKAPP_MAIN_110).Append("' ");// TASKAPP_MAIN_110 备用3
            }
            if (ms.TASKAPP_MAIN_120 != null && ms.TASKAPP_MAIN_120.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_120='").Append(ms.TASKAPP_MAIN_120).Append("' ");// TASKAPP_MAIN_120 备用4
            }
            if (ms.TASKAPP_MAIN_130 != null && ms.TASKAPP_MAIN_130.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_130='").Append(ms.TASKAPP_MAIN_130).Append("' ");// TASKAPP_MAIN_130 备用5
            }
            if (ms.TASKAPP_MAIN_140 != null && ms.TASKAPP_MAIN_140.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_140='").Append(ms.TASKAPP_MAIN_140).Append("' ");// TASKAPP_MAIN_140 备用6
            }
            if (ms.TASKAPP_MAIN_150 != null && ms.TASKAPP_MAIN_150.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_150='").Append(ms.TASKAPP_MAIN_150).Append("' ");// TASKAPP_MAIN_150 备用7
            }
            if (ms.TASKAPP_MAIN_160 != null && ms.TASKAPP_MAIN_160.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_160='").Append(ms.TASKAPP_MAIN_160).Append("' ");// TASKAPP_MAIN_160 备用8
            }
            if (ms.TASKAPP_MAIN_170 != null && ms.TASKAPP_MAIN_170.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_170='").Append(ms.TASKAPP_MAIN_170).Append("' ");// TASKAPP_MAIN_170 备用9
            }
            if (ms.TASKAPP_MAIN_180 != null && ms.TASKAPP_MAIN_180.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_180='").Append(ms.TASKAPP_MAIN_180).Append("' ");// TASKAPP_MAIN_180 备用10
            }
            if (ms.TASKAPP_MAIN_190 != null && ms.TASKAPP_MAIN_190.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_190='").Append(ms.TASKAPP_MAIN_190).Append("' ");// TASKAPP_MAIN_190 备用11
            }
            if (ms.TASKAPP_MAIN_200 != null && ms.TASKAPP_MAIN_200.ToString() != "")
            {
                sb.Append(",").Append(" TASKAPP_MAIN_200='").Append(ms.TASKAPP_MAIN_200).Append("' ");// TASKAPP_MAIN_200 备用12
            }
            sb.Append(" where TASKAPP_MAIN_AUTOID='").Append(ms.TASKAPP_MAIN_AUTOID).Append("'");// TASKAPP_MAIN_AUTOID AutoID
            lstCmdText.Add(sb.ToString());
            sb.Remove(0, sb.ToString().Length);
            try
            {
                int iexe = DbHelperMySQL.ExecuteSql(lstCmdText[0].ToString());
                if (iexe > 0)
                {
                    msr.strMsId = ms.TASKAPP_MAIN_AUTOID.ToString();
                    msr.strMS = "保存成功!";
                }
                else
                {
                    msr.strMsId = "-1";
                    msr.strMS = "操作失败:服务器忙,请稍后再试!";
                }
            }
            catch
            {
                msr.strMsId = "-1";
                msr.strMS = "操作失败:服务器忙,请稍后再试!";
            }
            lstCmdText = null;
            sb = null;
            return msr;
        }

        /// <summary>
        /// 得到数据类型
        /// </summary>
        /// <param name="msq">条件</param>
        /// <returns>数据类型</returns>
        public MsReturned Gettaskapp_mainByQuery(MsQuery msq)
        {
            DataSet ds = null;
            MsReturned msr = new MsReturned();
            StringBuilder sb = new StringBuilder();
            List<string> lstCmdText = new List<string>();
            sb.Append("select taskapp_main.* ");
            sb.Append(",SYSTEM_4_40 as strTASKAPP_MAIN_60 ");
            sb.Append(" from taskapp_main ");
            sb.Append(" LEFT JOIN SYSTEM_4 on SYSTEM_4_20=TASKAPP_MAIN_60 ");
            sb.Append(" where 1=1 ").Append(msq.strquery);
            if (msq.strorder != null && msq.strorder != "")
            {
                sb.Append(" order by ").Append(msq.strorder);
            }
            lstCmdText.Add(sb.ToString());
            sb.Remove(0, sb.ToString().Length);
            try
            {
                ds = DbHelperMySQL.Query(lstCmdText[0].ToString());
            }
            catch { }
            msr.data = ds;
            return msr;
        }

        /// <summary>
        /// 删除taskapp_main
        /// </summary>
        /// <param name="msq">条件</param>
        /// <returns></returns>
        public MsReturned Deletetaskapp_mainByQuery(MsQuery msq)
        {
            StringBuilder sb = new StringBuilder();
            MsReturned msr = new MsReturned();
            sb.Append(" delete from taskapp_main where TASKAPP_MAIN_AUTOID > 0 ").Append(msq.strquery);
            try
            {
                int iexe = DbHelperMySQL.ExecuteSql(sb.ToString());
                if (iexe > 0)
                {
                    msr.strMsId = "1";
                    msr.strMS = "保存成功!";
                }
                else
                {
                    msr.strMsId = "-1";
                    msr.strMS = "操作失败:服务器忙,请稍后再试!";
                }
            }
            catch
            {
                msr.strMsId = "-1";
                msr.strMS = "操作失败:服务器忙,请稍后再试!";
            }
            sb = null;
            return msr;
        }

    }
}
